package com.njbw.design_pattern.created.factory.simpleFactory;

/**
 * @author 黄侯淳
 * @since JDK 1.8
 */
public class ResourceLoader {

    /**
     * 加载资源
     * 核心业务逻辑部分不要耦合我们的创建逻辑
     * 创建逻辑交给工厂类去做
     *
     * @param url file:// http:// ftp:// classpath://
     * @return 资源类
     */
    public Resource load(String url) {
        // 1.根据 url 获取前缀
        String prefix = getPrefix(url);

        // 2.根据前缀处理不同的资源
        return ResourceFactory.create(url, prefix);
    }

    /**
     * 获取前缀
     *
     * @param url 资源路径
     * @return 前缀
     */
    private String getPrefix(String url) {
        if (null == url || !url.contains(":")) {
            throw new ResourceLoadException("传入的资源 url 不合法");
        }
        return url.split(":")[0];
    }
}
